package com.github.yeecode.mybatisdemo;

import com.github.yeecode.mybatisdemo.model.WipeGlass;
import com.github.yeecode.mybatisdemo.model.Cleaning;
import com.github.yeecode.mybatisdemo.model.WipeBlackboard;
import org.springframework.boot.autoconfigure.SpringBootApplication;


/**
 * 模板方法模式
 *
 * 定义一个操作中的算法的骨架，而将一些步骤延迟到子类中。
 * 模板方法使得子类可以不改变一个算法的结构即可重定义该算法的某些特定步骤。通俗的说的就是有很多相同的步骤的，
 * 在某一些地方可能有一些差别适合于这种模式，例如想要泡一杯茶或者一杯咖啡，第一步都是将水煮沸，第二步是加入咖啡或者茶，
 * 第三步就是将饮料倒入杯子中，第四步就是加入各种调味料。
 * 其中第一步和第三步都是一样的，这个就可以定义在基类，而第二步和第四步就是他们之间的差异就可以在具体的子类中去实现。下面就是代码实现。
 */
public class DemoApplication {
    public static void main(String[] args) {
        Cleaning wipeGlass = new WipeGlass();
        wipeGlass.clean();

        Cleaning wipeBlackboard = new WipeBlackboard();
        wipeBlackboard.clean();
    }
}
